package com.pojo;

import java.util.ArrayList;
import java.util.List;

public class SMShareParameterDomainExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public SMShareParameterDomainExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andParamIdIsNull() {
            addCriterion("Param_Id is null");
            return (Criteria) this;
        }

        public Criteria andParamIdIsNotNull() {
            addCriterion("Param_Id is not null");
            return (Criteria) this;
        }

        public Criteria andParamIdEqualTo(Integer value) {
            addCriterion("Param_Id =", value, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdNotEqualTo(Integer value) {
            addCriterion("Param_Id <>", value, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdGreaterThan(Integer value) {
            addCriterion("Param_Id >", value, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("Param_Id >=", value, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdLessThan(Integer value) {
            addCriterion("Param_Id <", value, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdLessThanOrEqualTo(Integer value) {
            addCriterion("Param_Id <=", value, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdIn(List<Integer> values) {
            addCriterion("Param_Id in", values, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdNotIn(List<Integer> values) {
            addCriterion("Param_Id not in", values, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdBetween(Integer value1, Integer value2) {
            addCriterion("Param_Id between", value1, value2, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamIdNotBetween(Integer value1, Integer value2) {
            addCriterion("Param_Id not between", value1, value2, "paramId");
            return (Criteria) this;
        }

        public Criteria andParamNameIsNull() {
            addCriterion("Param_Name is null");
            return (Criteria) this;
        }

        public Criteria andParamNameIsNotNull() {
            addCriterion("Param_Name is not null");
            return (Criteria) this;
        }

        public Criteria andParamNameEqualTo(String value) {
            addCriterion("Param_Name =", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameNotEqualTo(String value) {
            addCriterion("Param_Name <>", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameGreaterThan(String value) {
            addCriterion("Param_Name >", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameGreaterThanOrEqualTo(String value) {
            addCriterion("Param_Name >=", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameLessThan(String value) {
            addCriterion("Param_Name <", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameLessThanOrEqualTo(String value) {
            addCriterion("Param_Name <=", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameLike(String value) {
            addCriterion("Param_Name like", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameNotLike(String value) {
            addCriterion("Param_Name not like", value, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameIn(List<String> values) {
            addCriterion("Param_Name in", values, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameNotIn(List<String> values) {
            addCriterion("Param_Name not in", values, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameBetween(String value1, String value2) {
            addCriterion("Param_Name between", value1, value2, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamNameNotBetween(String value1, String value2) {
            addCriterion("Param_Name not between", value1, value2, "paramName");
            return (Criteria) this;
        }

        public Criteria andParamTitleIsNull() {
            addCriterion("Param_Title is null");
            return (Criteria) this;
        }

        public Criteria andParamTitleIsNotNull() {
            addCriterion("Param_Title is not null");
            return (Criteria) this;
        }

        public Criteria andParamTitleEqualTo(String value) {
            addCriterion("Param_Title =", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleNotEqualTo(String value) {
            addCriterion("Param_Title <>", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleGreaterThan(String value) {
            addCriterion("Param_Title >", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleGreaterThanOrEqualTo(String value) {
            addCriterion("Param_Title >=", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleLessThan(String value) {
            addCriterion("Param_Title <", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleLessThanOrEqualTo(String value) {
            addCriterion("Param_Title <=", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleLike(String value) {
            addCriterion("Param_Title like", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleNotLike(String value) {
            addCriterion("Param_Title not like", value, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleIn(List<String> values) {
            addCriterion("Param_Title in", values, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleNotIn(List<String> values) {
            addCriterion("Param_Title not in", values, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleBetween(String value1, String value2) {
            addCriterion("Param_Title between", value1, value2, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamTitleNotBetween(String value1, String value2) {
            addCriterion("Param_Title not between", value1, value2, "paramTitle");
            return (Criteria) this;
        }

        public Criteria andParamDescIsNull() {
            addCriterion("Param_Desc is null");
            return (Criteria) this;
        }

        public Criteria andParamDescIsNotNull() {
            addCriterion("Param_Desc is not null");
            return (Criteria) this;
        }

        public Criteria andParamDescEqualTo(String value) {
            addCriterion("Param_Desc =", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescNotEqualTo(String value) {
            addCriterion("Param_Desc <>", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescGreaterThan(String value) {
            addCriterion("Param_Desc >", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescGreaterThanOrEqualTo(String value) {
            addCriterion("Param_Desc >=", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescLessThan(String value) {
            addCriterion("Param_Desc <", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescLessThanOrEqualTo(String value) {
            addCriterion("Param_Desc <=", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescLike(String value) {
            addCriterion("Param_Desc like", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescNotLike(String value) {
            addCriterion("Param_Desc not like", value, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescIn(List<String> values) {
            addCriterion("Param_Desc in", values, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescNotIn(List<String> values) {
            addCriterion("Param_Desc not in", values, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescBetween(String value1, String value2) {
            addCriterion("Param_Desc between", value1, value2, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamDescNotBetween(String value1, String value2) {
            addCriterion("Param_Desc not between", value1, value2, "paramDesc");
            return (Criteria) this;
        }

        public Criteria andParamTypeIsNull() {
            addCriterion("Param_Type is null");
            return (Criteria) this;
        }

        public Criteria andParamTypeIsNotNull() {
            addCriterion("Param_Type is not null");
            return (Criteria) this;
        }

        public Criteria andParamTypeEqualTo(Integer value) {
            addCriterion("Param_Type =", value, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeNotEqualTo(Integer value) {
            addCriterion("Param_Type <>", value, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeGreaterThan(Integer value) {
            addCriterion("Param_Type >", value, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("Param_Type >=", value, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeLessThan(Integer value) {
            addCriterion("Param_Type <", value, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeLessThanOrEqualTo(Integer value) {
            addCriterion("Param_Type <=", value, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeIn(List<Integer> values) {
            addCriterion("Param_Type in", values, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeNotIn(List<Integer> values) {
            addCriterion("Param_Type not in", values, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeBetween(Integer value1, Integer value2) {
            addCriterion("Param_Type between", value1, value2, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("Param_Type not between", value1, value2, "paramType");
            return (Criteria) this;
        }

        public Criteria andParamUrlIsNull() {
            addCriterion("Param_Url is null");
            return (Criteria) this;
        }

        public Criteria andParamUrlIsNotNull() {
            addCriterion("Param_Url is not null");
            return (Criteria) this;
        }

        public Criteria andParamUrlEqualTo(String value) {
            addCriterion("Param_Url =", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlNotEqualTo(String value) {
            addCriterion("Param_Url <>", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlGreaterThan(String value) {
            addCriterion("Param_Url >", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlGreaterThanOrEqualTo(String value) {
            addCriterion("Param_Url >=", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlLessThan(String value) {
            addCriterion("Param_Url <", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlLessThanOrEqualTo(String value) {
            addCriterion("Param_Url <=", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlLike(String value) {
            addCriterion("Param_Url like", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlNotLike(String value) {
            addCriterion("Param_Url not like", value, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlIn(List<String> values) {
            addCriterion("Param_Url in", values, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlNotIn(List<String> values) {
            addCriterion("Param_Url not in", values, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlBetween(String value1, String value2) {
            addCriterion("Param_Url between", value1, value2, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamUrlNotBetween(String value1, String value2) {
            addCriterion("Param_Url not between", value1, value2, "paramUrl");
            return (Criteria) this;
        }

        public Criteria andParamStatusIsNull() {
            addCriterion("Param_Status is null");
            return (Criteria) this;
        }

        public Criteria andParamStatusIsNotNull() {
            addCriterion("Param_Status is not null");
            return (Criteria) this;
        }

        public Criteria andParamStatusEqualTo(Integer value) {
            addCriterion("Param_Status =", value, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusNotEqualTo(Integer value) {
            addCriterion("Param_Status <>", value, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusGreaterThan(Integer value) {
            addCriterion("Param_Status >", value, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("Param_Status >=", value, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusLessThan(Integer value) {
            addCriterion("Param_Status <", value, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusLessThanOrEqualTo(Integer value) {
            addCriterion("Param_Status <=", value, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusIn(List<Integer> values) {
            addCriterion("Param_Status in", values, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusNotIn(List<Integer> values) {
            addCriterion("Param_Status not in", values, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusBetween(Integer value1, Integer value2) {
            addCriterion("Param_Status between", value1, value2, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andParamStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("Param_Status not between", value1, value2, "paramStatus");
            return (Criteria) this;
        }

        public Criteria andShareAppIsNull() {
            addCriterion("share_App is null");
            return (Criteria) this;
        }

        public Criteria andShareAppIsNotNull() {
            addCriterion("share_App is not null");
            return (Criteria) this;
        }

        public Criteria andShareAppEqualTo(Integer value) {
            addCriterion("share_App =", value, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppNotEqualTo(Integer value) {
            addCriterion("share_App <>", value, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppGreaterThan(Integer value) {
            addCriterion("share_App >", value, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppGreaterThanOrEqualTo(Integer value) {
            addCriterion("share_App >=", value, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppLessThan(Integer value) {
            addCriterion("share_App <", value, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppLessThanOrEqualTo(Integer value) {
            addCriterion("share_App <=", value, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppIn(List<Integer> values) {
            addCriterion("share_App in", values, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppNotIn(List<Integer> values) {
            addCriterion("share_App not in", values, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppBetween(Integer value1, Integer value2) {
            addCriterion("share_App between", value1, value2, "shareApp");
            return (Criteria) this;
        }

        public Criteria andShareAppNotBetween(Integer value1, Integer value2) {
            addCriterion("share_App not between", value1, value2, "shareApp");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}